<!doctype html>
<script src="code/scripts.js"></script>
<script src="code/chapter/05_higher_order.js"></script>
<script src="code/intro.js"></script>

<body>
  <script src="//cdn.jsdelivr.net/npm/ramda@0.26.0/dist/ramda.min.js"></script>
<!-- 怎么导入啊 麻了都 -->
  <!-- <script src="http://unpkg.com/ramda"></script> -->
  <!-- html 导入 ramda -->
  <!-- <html> </html> -->
  <script>

    console.log("_.curry");
    console.log(_.curry);
function textScripts(text) {
  let scripts = countBy(text, char => {
    let script = characterScript(char.codePointAt(0));
    return script ? script.name : "none";
  }).filter(({name}) => name != "none");

  let total = scripts.reduce((n, {count}) => n + count, 0);
  if (total == 0) return "No scripts found";

  return scripts.map(({name, count}) => {
    return `${Math.round(count * 100 / total)}% ${name}`;
  }).join(", ");
}

function dominantDirection(text) {
    let counted = countBy(text, char => {
      // console.log("=====");
      // console.log("char");
      // console.log(char);
      // 遍历了 每一个 char ，可能是每个字符都有不同的 点，utf啥的
      let codeP= char.codePointAt(0);
      // console.log("codeP");
      // console.log(codeP);
      // 根据这个点 就可以查表
      let script = characterScript(char.codePointAt(0));
      // console.log("script");
      // console.log(script);
      // 查表查出方向
      return script ? script.direction : "none";
    }).filter(({name}) => name != "none");
  // 查出方向是 none的不要
  
  // 读出来是0 就默认是"ltr";？
    if (counted.length == 0) return "ltr";
  // 哪个大就是哪个
  // 所有的字符 他还去数出来每个字符是左边的还是右边的 然后统计了
  // 然后少数服从多数
  // reduce 本来是是对列表做的 但是现在就两个 就是取出大的来 
  // 但是这好吗？这不好 不讲武德 不易读，至少本蠢货 没看懂
    return counted.reduce((a, b) =>{
      console.log("a");
      console.log(a);
      console.log("b");
      console.log(b);
      return  a.count > b.count ? a : b
    }).name;
  }
  
  console.log(dominantDirection("Hello!"));
  // → ltr
  console.log(dominantDirection("Hey, مساء الخير"));
  // → rtl

console.log(textScripts('英国的狗说"woof", 俄罗斯的狗说"тяв"'));
</script></body>